package sistema.seguimiento.items.domain.descargasEA;

import java.util.List;

/**
 * Usuarios de un proyecto. Algunos de estos usuarios podrian ser project leaders,
 * @author mpersico
 * @version 1.0
 * @created 06-jun-2012 10:07:12 p.m.
 */
public class User {

	/**
	 * Nombre real de User.
	 */
	private String firstName;
	/**
	 * Apellido real del User.
	 */
	private String lastName;
	private String userName;
	private String password;
	private String email;
	public Role userRole;
	private Project userProjects;

	public User(){

	}

	public void finalize() throws Throwable {

	}

	/**
	 * Constructor de instancias de la clase User.
	 * 
	 * @param permissions    conjunto de permisos que va a tener el usuario.
	 * @param aUserName    nombre de login del usuario
	 * @param aPassword    pass del usuario
	 * @param aFirstName    nombres del usauario
	 * @param aLastName    apellidos del usuario
//	 */
//	public static User User(List<Permission> permissions, String aUserName, String aPassword, String aFirstName, String aLastName){
//		return null;
//	}

	/**
	 * agrega un permiso al usuario
	 * 
	 * @param aPermission    permiso que se quiere agregar al usuario
	 */
//	public void addPermission(Permission aPermission){
//
//	}

	/**
	 * agrega un nuevo workflow, el cual puede ser accedido por el usuario en
	 * distintas formas, dependiendo de sus permisos.
	 * 
	 * @param aWorkflow    workflow al que puede acceder el usuario
	 */
	public void addWorkflow(Workflow aWorkflow){

	}

	/**
	 * retorna el email del usuario
	 */
	public String getEmail(){
		return "";
	}



	/**
	 * retorna el nombre del usuario
	 */
	public String getFirstName(){
		return "";
	}

	/**
	 * retorna el apellido del usuario
	 */
	public String getLastName(){
		return "";
	}

	/**
	 * retorna la password del usuario
	 */
	public String getPassword(){
		return "";
	}

	/**
	 * retorna los permisos del usuario
	 */
//	public List<Permission> getPermission(){
//		return null;
//	}

	/**
	 * retorna el nombre del usuario
	 */
	public String getUserName(){
		return "";
	}

	/**
	 * determina si el usuario es adinistrador del sistema
	 */
	public boolean isAdminUser(){
		return false;
	}

	/**
	 * 
	 * @param aString    emial del usuario
	 */
	public void setEmail(String aString){

	}

	/**
	 * setea el nombre del usuario
	 * 
	 * @param aString    nombres del usuario
	 */
	public void setFirstName(String aString){

	}

	/**
	 * setea el apellido del usuario
	 * 
	 * @param aString    apellidos del usuario
	 */
	public void setLastName(String aString){

	}

	/**
	 * setea el password del usuario
	 * 
	 * @param aString    password del usuario
	 */
	public void setPassword(String aString){

	}

	/**
	 * 
	 * @param aProject
	 */
	public void setProject(Project aProject){

	}

	/**
	 * setea el nombre de login
	 * 
	 * @param aString    nombre de login
	 */
	public void setUserName(String aString){

	}

}